Skip to content

SwiftUI之设置HStack子视图高度相等

在SwiftUI中,要使HStack的子视图高度相等,可结合使用.frame(maxHeight: .infinity).fixedSize(horizontal: false, vertical: true).frame使子视图占据最大高度,而.fixedSize确保HStack的高度适应最高的子视图。例如:

swift
HStack {
    VStack {
        Text("Hello,")
        Text("world")
        Text("!")
    }
    .frame(maxHeight: .infinity)
    .background(Color.pink)

    Text("Hi, 🌎!")
    .frame(maxHeight: .infinity)
    .background(Color.yellow)
}
.fixedSize(horizontal: false, vertical: true)
HStack {
    VStack {
        Text("Hello,")
        Text("world")
        Text("!")
    }
    .frame(maxHeight: .infinity)
    .background(Color.pink)

    Text("Hi, 🌎!")
    .frame(maxHeight: .infinity)
    .background(Color.yellow)
}
.fixedSize(horizontal: false, vertical: true)

通过此方法,HStack内的子视图将具有相同的高度。